package FilesManagers;

import java.io.*;

public class FileManager{

	private BufferedReader entrada;
	private char marcadorComentario;
	private String archivo;


	public void cargarArchivo(String archivo,String codificacion) throws CantOpenFileException{
				setArchivo(archivo);
				if (codificacion.compareTo("")==0) codificacion="UTF-8";
				
				try{
					FileInputStream miArchvo = new FileInputStream(archivo);
					this.entrada = new BufferedReader( new InputStreamReader(miArchvo,codificacion));
				}catch(Exception e){
					throw new CantOpenFileException(archivo);
					//System.out.println("Class FileManager - Method cargarArchivo "+e.getMessage());
				}

	}
	public void cargarArchivo(String archivo) throws CantOpenFileException{
		this.cargarArchivo(archivo, "");
	
	}
	public void setMarcadorComentario(char comentario){
		this.marcadorComentario = comentario;
	}
	public char getMarcadorComentario() {
		return this.marcadorComentario;
		
	}
	
	/* Devuelve la siguiente linea no nula */
	public String obtenerSiguienteLinea() throws NoMoreLinesException{

		String linea="";
		try{

			//if((linea = entradaHtml.readLine())!= null){
			while((linea.trim().compareTo("")==0)&&((linea = entrada.readLine())!= null)){
				linea = linea.trim();
				if (linea.compareTo("")==0 || linea.charAt(0)==this.marcadorComentario){
						linea=this.obtenerSiguienteLinea();
				}
			}
			if (linea==null){
				entrada.close();
			}

		}catch(Exception e){

					//System.out.println("Class FileManager - obtenerSiguienteLinea "+e.getMessage());
					throw new NoMoreLinesException(getArchivo());
		}
		return linea;


	}
	public String getArchivo() {
		return archivo;
	}
	private void setArchivo(String archivo) {
		this.archivo = archivo;
	}
	


}